package com.app.designpatternslearn.structured.compositepattern

import com.app.designpatternslearn.structured.compositepattern.code.Node
import com.app.designpatternslearn.structured.compositepattern.code.Tree

fun main() {

    val tree = Tree()

    val node1 = Node()
    node1.name = "node1"
    tree.add(node1)
    val node2 = Node()
    node2.name = "node2"
    tree.add(node2)
    val node3 = Node()
    node3.name = "node3"
    tree.add(node3)
    val node4 = Node()
    node4.name = "node4"
    tree.add(node4)
    val subNode11 = Node()
    subNode11.name = "subNode11"
    node1.add(subNode11)
    val subNode12 = Node()
    subNode12.name = "subNode12"
    node1.add(subNode12)
    val subNode13 = Node()
    subNode13.name = "subNode13"
    node1.add(subNode13)
    val subNode14 = Node()
    subNode14.name = "subNode14"
    node1.add(subNode14)
    val subNode15 = Node()
    subNode15.name = "subNode15"
    node1.add(subNode15)
    val subNode16 = Node()
    subNode16.name = "subNode16"
    node1.add(subNode16)
    val subNode17 = Node()
    subNode17.name = "subNode17"
    node1.add(subNode17)
    val subNode21 = Node()
    subNode21.name = "subNode21"
    node2.add(subNode21)
    val subNode22 = Node()
    subNode22.name = "subNode22"
    node2.add(subNode22)
    val subNode23 = Node()
    subNode23.name = "subNode23"
    node2.add(subNode23)
    val subNode24 = Node()
    subNode24.name = "subNode24"
    node2.add(subNode24)
    val subNode25 = Node()
    subNode25.name = "subNode25"
    node2.add(subNode25)
    val subNode26 = Node()
    subNode26.name = "subNode26"
    node2.add(subNode26)
    val subNode27 = Node()
    subNode27.name = "subNode27"
    node2.add(subNode27)
    val subNode31 = Node()
    subNode31.name = "subNode31"
    node3.add(subNode31)
    val subNode32 = Node()
    subNode32.name = "subNode32"
    node3.add(subNode32)
    val subNode33 = Node()
    subNode33.name = "subNode33"
    node3.add(subNode33)
    val subNode34 = Node()
    subNode34.name = "subNode34"
    node3.add(subNode34)
    val subNode35 = Node()
    subNode35.name = "subNode35"
    node3.add(subNode35)
    val subNode36 = Node()
    subNode36.name = "subNode36"
    node3.add(subNode36)
    val subNode37 = Node()
    subNode37.name = "subNode37"
    node3.add(subNode37)
    val subNode41 = Node()
    subNode41.name = "subNode41"
    node4.add(subNode41)
    val subNode42 = Node()
    subNode42.name = "subNode42"
    node4.add(subNode42)
    val subNode43 = Node()
    subNode43.name = "subNode43"
    node4.add(subNode43)
    val subNode44 = Node()
    subNode44.name = "subNode44"
    node4.add(subNode44)
    val subNode45 = Node()
    subNode45.name = "subNode45"
    node4.add(subNode45)
    val subNode46 = Node()
    subNode46.name = "subNode46"
    node4.add(subNode46)
    val subNode47 = Node()
    subNode47.name = "subNode47"
    node4.add(subNode47)

    println("---------------------")

    println(tree)

    println("---------------------")
}